#include"server.hpp"
#define INF 0
#define DBG 1
#define ERR 2
#define LOG_LEVEL INF
#define LOG(level,format,...) do{\
    if(level<LOG_LEVEL)break;\
    time_t t=time(NULL);\
    struct tm*ltm=localtime(&t);\
    char tmp[32]={0};\
    strftime(tmp,32,"%Y-%m-%d %H:%M:%S",ltm);\
    fprintf(stdout,"[%s:%s:%d]" format "\n",tmp,__FILE__,__LINE__,##__VA_ARGS__ );\
    }while(0)
#define INF_LOG(format,...) LOG(INF,format,##__VA_ARGS__)
#define DBG_LOG(format,...) LOG(DBG,format,##__VA_ARGS__)
#define ERR_LOG(format,...) LOG(ERR,format,##__VA_ARGS__)

int main(){
    Buffer buf;
    std::string s="hello world";
    for(int i=0;i<10;i++)
    {
        std::string str=s+std::to_string(i)+'\n';
        buf.WriteStringAndPush(str);
    }
    while(buf.ReadAbleSize())
    {
        std::string str=buf.GetLineAndPop();
        INF_LOG("aaaa");
    }
    // buf.WriteStringAndPush(s);

    // Buffer buf1;
    // buf1.WriteBuffAndPush(buf);

    // std::string tmp=buf1.ReadAsStringAndPop(buf1.ReadAbleSize());
    
    // std::cout<<tmp<<std::endl;
    // std::cout<<buf.ReadAbleSize()<<std::endl;
    // std::cout<<buf1.ReadAbleSize()<<std::endl;
    // return 0;
}
